A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the United States Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The present invention is directed to computer systems, and more particularly, to remote emulation of a host computer system console.
Large computer systems, including mainframes and enterprise servers, have traditionally included a primary console to enable system administrators to configure and administer the computer system. These primary consoles typically take the form of a monitor, keyboard, and often a pointing device, such as a mouse, attached locally to the computer system. In some cases, the primary console comprises a small workstation that is tightly coupled to the larger computer system.
In order to provide additional flexibility and ease of administration of a large computer system, remote consoles have been provided that emulate the primary console of the computer system on a remote workstation over a modem or network connection. Typically, video information representing the screen of the primary console is captured and transmitted over the network to the remote workstation, which uses the information to reproduce the screen of the primary console on the remote workstation. Keystroke and mouse input at the remote workstation is transmitted to the host computer system and inserted into the system keyboard controller. A system administrator is thus able to administer and configure the computer system from the remote location as if using the primary console of the computer system.
Co-pending application Ser. No. 09/310,542, filed May 12, 1999, entitled xe2x80x9cSystem and Adapter Card for Remote Console Emulation,xe2x80x9d describes an adapter card for remote console emulation that combines a graphics controller, a network interface controller, and a peripheral device interface controller. A remote client program executes on a remote computer system that connects to the network interface controller of the adapter card via a network. The remote client program receives video information from the adapter card via the network and uses that information to produce a representation of the console screen of the host computer on a display at the remote location.
An additional feature described in the co-pending application relates to the peripheral device interface controller on the adapter card which, in the preferred embodiment described therein, comprises a Small Computer Systems Interface (SCSI) controller. In one mode of operation, the adapter card allows the host operating system to control the peripheral device interface controller, allowing the host operating system to use the interface as it would any other adapter-based peripheral device interface. Thus, peripheral devices, such as disk drives, scanners, printers, and the like can be connected to the peripheral device interface and can be operated with the host computer system in the typical manner.
In a second mode of operation, a user at the remote computer system can choose instead to have a processor on the adapter card take control of the peripheral device interface controller. This allows the user at the remote location to access devices attached to the peripheral device interface, such as disk drives and the like, directly. As described in the co-pending application, this is achieved by setting a flag variable stored on the adapter card. When the host computer system, and hence the adapter card, is started, the processor on the adapter card examines the flag to determine whether it should take control of the peripheral device interface or whether the first computer system should take control. If the adapter card processor is to take control, the processor causes a modified BIOS for the peripheral device interface to be loaded by the host computer system that halts the execution of the system BIOS of the host computer system in order to allow the processor on the adapter card to take control of the peripheral device interface controller.
One disadvantage with the approach taken above is that, because the adapter card halts execution of the host BIOS in order to allow the processor to take control of the peripheral device interface, a software driver for the peripheral device interface must be developed for the particular processor and operating system on the adapter card. In many cases, such a driver may not be readily available from the peripheral device interface manufacturer, and, therefore, a significant development effort may be required to develop a suitable driver. Accordingly, it would be desirable if the need for a software driver on the adapter card could be eliminated. The present invention satisfies this need.
The present invention is directed to a system, method, and adapter card for providing emulation (i.e., remote control) of a console of a host computer system from another computer system remotely located on a network, including in particular, remote control of a peripheral device, such as a data storage device, connected to the host computer system. The adapter card comprises a processor, a network interface controller providing a connection to the network, a peripheral device interface controller to which the peripheral device is connected, a communications client program executing on the processor, and at least one computer-readable medium having stored therein a modified BIOS extension for said peripheral device interface controller. The modified BIOS extension comprises first program code and second program code, the second program code being embedded within the first program code and defining a separate server program. Upon selection by a user at the remote computer system, the modified BIOS extension is loaded into the host memory during execution of the host computer system BIOS, in place of the standard BIOS extension for the peripheral device interface controller. When executed by the host processor, the first program code of the BIOS extension (i) copies the second program code defining the server program to a new location in the host memory, and then (ii) hooks the new location of the server program to an interrupt of the host computer system to cause the host processor to initiate execution of the server program on the host computer system upon a subsequent occurrence of that interrupt. The server program establishes communications with the communications client program on the adapter card, and, thereafter, upon receipt of requests from the communications client program, invokes functions of the host computer system BIOS to control the peripheral device. Preferably, the first program code hooks the server program to the host computer system bootstrap loader interrupt, in which case the server program is executed in place of the host bootstrap loader, allowing remote control of the peripheral device in the absence of the host operating system.
In accordance with a preferred use of the present invention, the communications client and server program are employed to control one or more data storage devices connected to the peripheral device interface, including (i) selecting one of the disk drives, (ii) partitioning the selected disk drive, and (iii) copying a bootable disk image to the selected disk drive, in the absence of the host operating system.
Additional features and advantages of the present invention will become evident hereinafter.